I. Field of the Invention
The present invention relates to methods and apparatus for improving robot accuracy and long-term repeatability by refining original robot command signals.
II. Background of the Invention
Most of today's robots are programmed online, that is in the actual environment where the robot is to be used. An operator "trains" the robot by moving it through a series of configurations and causing those configurations to be stored in memory. Online programming is a very inefficient way to program robots and robot manufacturers and users alike are presently trying to develop offline programmed systems. The inefficiencies relate to having a programmer spend his time to initially program the robot and to adjust the program on a regular basis. In addition if the task is to be transferred to a different robot, if the current robot requires maintenance, or the task is to be slightly modified, the robot may require reprogramming. Each of these functions could be performed automatically if the robot could be programmed offline.
In offline programmed robot systems, a CAD/CAM (computer aided design/computer aided manufacturing) system generates the robot program. The programs are composed of commanded actions (REACH, GRASP, PALLETIZE), poses where the actions are to occur (at pose A, B) and sensory queries that are used for branching and program control. In future generations of offline programmed robotic systems, the offline generated program will be downloaded to the robot, eliminating much, if not all of the need for an operator to train the robot. The transition between online and offline programming has been going on for the last few years. For example, there are in some research facilities task level programs that can use retrieval, or in some limited cases, generative techniques to decompose high level tasks desired of robots (like assemble the Model #43 gearbox) to much lower level commands (such as place gear A on sprocket B). Although the transition to offline programming is moving at a continued but modest pace, there are a number of problems which must be solved.
Current robots are not accurate enough to be used in precision assembly tasks when they are programmed offline. A state-of-the-art robot manipulator is a repeatable but inaccurate device. If a manipulator is repeatably commanded to a desired position and orientation (pose), it will repeatably return to approximately the same achieved pose but the achieved pose will not be equal to the desired pose. The achieved poses are not equal to the desired poses because of a number of reasons which are discussed in Reference No. 4 listed below [Colson and Perreira, 1985-1]. A dominant source of pose errors is the machining, assembly and measurement errors in the mechanical linkages and joint actuators that make up the robot manipulator.
For an online programmed robot an operator "trains" the manipulator by placing it at a series of configurations and causing the configurations to be stored in memory. Because robots are repeatable, when they are commanded using the stored configurations they will behave adaquately for some duration. The configurations can be stored as either a set of joint variables measured at the linkage joints or by a pose variable which is directly related to the joint variables through a set of preprogrammed forward kinematic equations. A preprogrammed set of reverse kinematic equations can convert the pose variable back into the original set of joint variables.
Storing joint configurations can cause inefficiencies for online programmed robots if the robot's characteristics change (through electrical and mechanical drifts) because the robot will move to the wrong pose when it is commanded to an original joint configuration. In addition, storing configurations as poses can cause similar problems because the preprogrammed forward kinematic equations used to convert the joint variables to a pose variable may no longer be correct.
In the prior art there have been no known real-time, automatic devices to determine the causes of the robot pose errors (the mechanical linkage errors and joint actuator errors) and to use the knowledge of those errors to both calibrate the robot and correct its trajectory. An object of the subject invention is effectively to determine the actual equations that describe the forward and inverse kinematics of the linkage at any point in time those equations are needed.
In the prior art, robots need to be frequently retaught because there are drifts in its electronics and mechanical linkages. These are no real time devices to correct the trajectory of a online programmed robot by converting the taught joint configurations to actual robot poses thus improving the long term repeatability. The forward kinematic equations used in robot controllers convert the taught joint configurations into an inaccurate description of the taught pose.
In the prior art, a robot task program created by teaching one robot, can not be used on other robots (even of the same type) due to the subtle kinematic differences between the robots. In the prior art a robot normally needs to be retaught its task after maintenance or after it has been moved. An other object of the subject invention is to adjust the joint and pose commands automatically so that the robot does not need to be retaught.
Additional objects and advantages of the invention will be set forth in part from the description that follows, and in part will be obvious from that description or may be learned in practice of that invention.